home *** CD-ROM | disk | FTP | other *** search
Text File | 1989-06-27 | 4.2 KB | 187 lines | [TEXT/MPS ] |
- { *** =================================================== ***
-
- Purpose: Terminal tool main localization code
- module. This tool basically handles converting
- our config strings to/from the English language.
-
- Module : tloc.p
-
- Authors: Craig Hotchkiss, Alex Kazim, Byron Han,
- Carol Lee
- Apple Computer, Inc.
- Networks & Communications
- 20525 Mariani Drive
- Cupertino, CA 95014
-
- Version : 1.0d1
-
- Date : 9.may.89
-
- History :
- 9.may.89 Creation date
-
-
- ©1989 Apple Computer, Inc. All Rights Reserved.
- This software is proprietary to Apple Computer, Inc.
- It may not be copied, in whole or in part,
- without the written consent of Apple Computer, Inc.
-
- *** =================================================== *** }
-
-
-
-
- UNIT TERMINALtloc;
-
- INTERFACE
-
- USES MemTypes,
- QuickDraw,
- OSIntf,
- ToolIntf,
- PasLibIntf,
- Lists,
- CRMSerialIntf,
- CRMIntf,
- CTBUtils,
- CMIntf,
- TMIntf,
- FTIntf,
- TerminalTool,
- TermGlobalUnit;
-
-
-
-
-
- FUNCTION tlocMAIN(hTerm: TermHandle; theMessage: Integer;
- p1, p2, p3: LongInt): LongInt;
-
-
- IMPLEMENTATION
-
-
-
- FUNCTION TMToolTranslate(tempPrivatePtr: TERMINALPrivatePtr;
- theProcID: Integer; pEnglishStr: Ptr; VAR outputPtr: Ptr;
- fromLanguage: LongInt; toLanguage: LongInt;
- tempConfigPtr: Ptr): LongInt;
- FORWARD;
-
-
-
- FUNCTION tlocMAIN(hTerm: TermHandle; theMessage: Integer;
- p1, p2, p3: LongInt): LongInt;
-
- { The integer value 'theMessage' here decides if we going from Eng.
- to an international language or vice versa. It uses the same procedure
- to toggle values. }
-
- TYPE
- PtrPtr = ^Ptr;
- VAR
- theProcID: Integer;
- outputPtr: Ptr;
- tempConfigPtr: Ptr;
-
- tempPrivatePtr: TERMINALPrivatePtr;
- BEGIN
- outputPtr := PtrPtr(p2)^;
-
- tempPrivatePtr := TERMINALPrivatePtr(hTerm^^.tmPrivate);
- theProcID := hTerm^^.procID;
- tempConfigPtr := hTerm^^.config;
-
- CASE theMessage OF
- TML2English:
- tlocMAIN := TMToolTranslate(tempPrivatePtr, theProcID,
- Ptr(p1), outputPtr, p3, verUS, tempConfigPtr);
- TML2Intl:
- tlocMAIN := TMToolTranslate(tempPrivatePtr, theProcID,
- Ptr(p1), outputPtr, verUS, p3, tempConfigPtr);
- OTHERWISE
- tlocMain := 0;
- END; { CASE }
- PtrPtr(p2)^ := outputPtr;
- END; { of func TermToolLocalize }
-
-
-
- FUNCTION TMToolTranslate(tempPrivatePtr: TERMINALPrivatePtr;
- theProcID: Integer; pEnglishStr: Ptr; VAR outputPtr: Ptr;
- fromLanguage: LongInt; toLanguage: LongInt;
- tempConfigPtr: Ptr): LongInt;
-
- { Our common procedure performs a similar function to GetConfig
- in that it returns a space delimited string of the current language.
- See module tscr.p for further reference. }
-
- VAR
- tempString: Str255;
- storeStr: Str255;
- mBTemp: Str255;
- mBString: Str255;
- memErrorCheck: Integer;
-
- pConfig: TerminalPtr;
- BEGIN
- fromLanguage := CRMLocalToRealID
- (ClassTM, theProcID, 'STR#', fromLanguage);
- toLanguage := CRMLocalToRealID
- (ClassTM, theProcID, 'STR#', toLanguage);
- IF (toLanguage = -1) THEN
- BEGIN
- TMToolTranslate := -1;
- outputPtr := NIL;
- Exit(TMToolTranslate);
- END;
- storeStr := '';
- pConfig := TerminalPtr(tempConfigPtr);
-
- GetIndString(tempString, toLanguage, onlineBoolean);
- storeStr := Concat(storeStr, tempString, ' ');
- IF pConfig^.onlineBoolean THEN
- GetIndString(tempString, toLanguage, trueID)
- ELSE
- GetIndString(tempString, toLanguage, falseID);
- storeStr := Concat(storeStr, tempString, ' ');
-
-
-
- GetIndString(tempString, toLanguage, screen132Boolean);
- storeStr := Concat(storeStr, tempString, ' ');
- IF pConfig^.screenWidth THEN
- GetIndString(tempString, toLanguage, trueID)
- ELSE
- GetIndString(tempString, toLanguage, falseID);
- storeStr := Concat(storeStr, tempString, ' ');
-
-
-
- GetIndString(tempString, toLanguage, cursorStyleBoolean);
- storeStr := Concat(storeStr, tempString, ' ');
- IF pConfig^.cursorStyle THEN
- GetIndString(tempString, toLanguage, trueID)
- ELSE
- GetIndString(tempString, toLanguage, falseID);
-
- storeStr := Concat(storeStr, tempString, Chr($0));
- { The string should be complete now }
-
- outputPtr := NewPtrClear(Length(storeStr));
- memErrorCheck := MemError;
- IF memErrorCheck <> noErr THEN
- BEGIN
- outputPtr := NIL;
- TMToolTranslate := -1;
- Exit(TMToolTranslate);
- END;
-
- BlockMove(Ptr(Ord4(@storeStr) + 1), outputPtr, Length(storeStr));
- tempPrivatePtr^.currentLanguage := Integer(toLanguage);
- TMToolTranslate := 0;
- END;
-
-
- END.
-